home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 24 / CU Amiga Magazine's Super CD-ROM 24 (1998)(EMAP Images)(GB)(Track 1 of 2)[!][issue 1998-07].iso / CUCD / Utilities / vim-5.1 / src / version.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-03-29  |  7.8 KB  |  388 lines

  1. /* vi:set ts=8 sts=4 sw=4:
  2.  * vi:set comments=sbl\:*\ -,mb\:*,el\:*\ -,sr\:/\*,mb\:*,el\:*\/,fb\:- :
  3.  *
  4.  * VIM - Vi IMproved        by Bram Moolenaar
  5.  *
  6.  * Do ":help uganda"  in Vim to read copying and usage conditions.
  7.  * Do ":help credits" in Vim to see a list of people who contributed.
  8.  */
  9.  
  10. #include "vim.h"
  11.  
  12. /*
  13.  * Vim originated from Stevie version 3.6 (Fish disk 217) by GRWalter (Fred)
  14.  * It has been changed beyond recognition since then.
  15.  *
  16.  * Differences between version 4.x and 5.0, and between 5.0 and 5.1 can be
  17.  * found with ":help version5".
  18.  * Differences between version 3.0 and 4.x can be found with ":help version4".
  19.  * All the remarks about older versions have been removed, they are not very
  20.  * interesting.
  21.  */
  22.  
  23. #include "version.h"
  24.  
  25. char    *Version = VIM_VERSION_SHORT;
  26. char    *mediumVersion = VIM_VERSION_MEDIUM;
  27. #ifdef HAVE_DATE_TIME
  28. char    *longVersion = VIM_VERSION_LONG_DATE __DATE__ " " __TIME__ ")";
  29. #else
  30. char    *longVersion = VIM_VERSION_LONG;
  31. #endif
  32.  
  33. static void version_msg __ARGS((char *s));
  34.  
  35.     int
  36. get_version()
  37. {
  38.     return (VIM_VERSION_MAJOR * 100 + VIM_VERSION_MINOR);
  39. }
  40.  
  41.     void
  42. do_version(arg)
  43.     char_u  *arg;
  44. {
  45.     /*
  46.      * Ignore a ":version 9.99" command.
  47.      */
  48.     if (*arg == NUL)
  49.     {
  50.     /*
  51.      * When adding features here, don't forget to update the list of
  52.      * internal variables in eval.c!
  53.      */
  54.     msg_putchar('\n');
  55.     MSG(longVersion);
  56. #ifdef WIN32
  57. # ifdef USE_GUI_WIN32
  58.     MSG_PUTS("\nWindows 32 bit GUI version");
  59.     if (gui_is_win32s())
  60.         MSG_PUTS(" in Win32s mode");
  61. # else
  62.     MSG_PUTS("\nWindows 32 bit console version");
  63. # endif
  64. #endif
  65. #ifdef MSDOS
  66. # ifdef DJGPP
  67.     MSG_PUTS("\n32 bit MS-DOS version");
  68. # else
  69.     MSG_PUTS("\n16 bit MS-DOS version");
  70. # endif
  71. #endif
  72. #ifdef macintosh
  73.     MSG_PUTS("\nMacOS version");
  74. #endif
  75.     MSG_PUTS("\nCompiled with (+) or without (-):\n");
  76. #ifdef AMIGA        /* only for Amiga systems */
  77. # ifdef NO_ARP
  78.     version_msg("-ARP ");
  79. # else
  80.     version_msg("+ARP ");
  81. # endif
  82. #endif
  83. #ifdef AUTOCMD
  84.     version_msg("+autocmd ");
  85. #else
  86.     version_msg("-autocmd ");
  87. #endif
  88. #ifdef NO_BUILTIN_TCAPS
  89.     version_msg("-builtin_terms ");
  90. #endif
  91. #ifdef SOME_BUILTIN_TCAPS
  92.     version_msg("+builtin_terms ");
  93. #endif
  94. #ifdef ALL_BUILTIN_TCAPS
  95.     version_msg("++builtin_terms ");
  96. #endif
  97. #ifdef CINDENT
  98.     version_msg("+cindent ");
  99. #else
  100.     version_msg("-cindent ");
  101. #endif
  102. #ifdef DIGRAPHS
  103.     version_msg("+digraphs ");
  104. #else
  105.     version_msg("-digraphs ");
  106. #endif
  107. #ifdef EMACS_TAGS
  108.     version_msg("+emacs_tags ");
  109. #else
  110.     version_msg("-emacs_tags ");
  111. #endif
  112. #ifdef WANT_EVAL
  113.     version_msg("+eval ");
  114. #else
  115.     version_msg("-eval ");
  116. #endif
  117. #ifdef EX_EXTRA
  118.     version_msg("+ex_extra ");
  119. #else
  120.     version_msg("-ex_extra ");
  121. #endif
  122. #ifdef EXTRA_SEARCH
  123.     version_msg("+extra_search ");
  124. #else
  125.     version_msg("-extra_search ");
  126. #endif
  127. #ifdef FKMAP
  128.     version_msg("+farsi ");
  129. #else
  130.     version_msg("-farsi ");
  131. #endif
  132. #ifdef FILE_IN_PATH
  133.     version_msg("+file_in_path ");
  134. #else
  135.     version_msg("-file_in_path ");
  136. #endif
  137. #ifdef FIND_IN_PATH
  138.     version_msg("+find_in_path ");
  139. #else
  140.     version_msg("-find_in_path ");
  141. #endif
  142.         /* only interesting on Unix systems */
  143. #if !defined(USE_SYSTEM) && defined(UNIX)
  144.     version_msg("+fork() ");
  145. #endif
  146. #ifdef UNIX
  147. # ifdef USE_GUI_MOTIF
  148.     version_msg("+GUI_Motif ");
  149. # else
  150. #  ifdef USE_GUI_ATHENA
  151.     version_msg("+GUI_Athena ");
  152. #  else
  153. #   ifdef USE_GUI_BEOS
  154.     version_msg("+GUI_BeOS ");
  155. #    else
  156.     version_msg("-GUI ");
  157. #   endif
  158. #  endif
  159. # endif
  160. #endif
  161. #ifdef INSERT_EXPAND
  162.     version_msg("+insert_expand ");
  163. #else
  164.     version_msg("-insert_expand ");
  165. #endif
  166. #ifdef HAVE_LANGMAP
  167.     version_msg("+langmap ");
  168. #else
  169.     version_msg("-langmap ");
  170. #endif
  171. #ifdef LISPINDENT
  172.     version_msg("+lispindent ");
  173. #else
  174.     version_msg("-lispindent ");
  175. #endif
  176. #ifdef USE_MOUSE
  177.     version_msg("+mouse ");
  178. # else
  179.     version_msg("-mouse ");
  180. #endif
  181. #ifdef UNIX
  182. # ifdef DEC_MOUSE
  183.     version_msg("+mouse_dec ");
  184. # else
  185.     version_msg("-mouse_dec ");
  186. # endif
  187. # ifdef NETTERM_MOUSE
  188.     version_msg("+mouse_netterm ");
  189. # else
  190.     version_msg("-mouse_netterm ");
  191. # endif
  192. # ifdef XTERM_MOUSE
  193.     version_msg("+mouse_xterm ");
  194. # else
  195.     version_msg("-mouse_xterm ");
  196. # endif
  197. #endif
  198. #ifdef USE_GUI_WIN32
  199. # ifdef HAVE_OLE
  200.     version_msg("+ole ");
  201. # else
  202.     version_msg("-ole ");
  203. # endif
  204. #endif
  205. #ifdef HAVE_PERL_INTERP
  206.     version_msg("+perl ");
  207. #else
  208.     version_msg("-perl ");
  209. #endif
  210. #ifdef QUICKFIX
  211.     version_msg("+quickfix ");
  212. #else
  213.     version_msg("-quickfix ");
  214. #endif
  215. #ifdef HAVE_PYTHON
  216.     version_msg("+python ");
  217. #else
  218.     version_msg("-python ");
  219. #endif
  220. #ifdef RIGHTLEFT
  221.     version_msg("+rightleft ");
  222. #else
  223.     version_msg("-rightleft ");
  224. #endif
  225. #ifdef SHOWCMD
  226.     version_msg("+showcmd ");
  227. #else
  228.     version_msg("-showcmd ");
  229. #endif
  230. #ifdef SMARTINDENT
  231.     version_msg("+smartindent ");
  232. #else
  233.     version_msg("-smartindent ");
  234. #endif
  235. #ifdef USE_SNIFF
  236.     version_msg("+sniff ");
  237. #else
  238.     version_msg("-sniff ");
  239. #endif
  240. #ifdef SYNTAX_HL
  241.     version_msg("+syntax ");
  242. #else
  243.     version_msg("-syntax ");
  244. #endif
  245.         /* only interesting on Unix systems */
  246. #if defined(USE_SYSTEM) && (defined(UNIX) || defined(__EMX__))
  247.     version_msg("+system() ");
  248. #endif
  249. #ifdef BINARY_TAGS
  250.     version_msg("+tag_binary ");
  251. #else
  252.     version_msg("-tag_binary ");
  253. #endif
  254. #ifdef OLD_STATIC_TAGS
  255.     version_msg("+tag_old_static ");
  256. #else
  257.     version_msg("-tag_old_static ");
  258. #endif
  259. #ifdef TAG_ANY_WHITE
  260.     version_msg("+tag_any_white ");
  261. #else
  262.     version_msg("-tag_any_white ");
  263. #endif
  264. #if defined(UNIX) || defined(__EMX__)
  265. /* only Unix (or OS/2 with EMX!) can have terminfo instead of termcap */
  266. # ifdef TERMINFO
  267.     version_msg("+terminfo ");
  268. # else
  269.     version_msg("-terminfo ");
  270. # endif
  271. #else            /* unix always includes termcap support */
  272. # ifdef HAVE_TGETENT
  273.     version_msg("+tgetent ");
  274. # else
  275.     version_msg("-tgetent ");
  276. # endif
  277. #endif
  278. #ifdef TEXT_OBJECTS
  279.     version_msg("+textobjects ");
  280. #else
  281.     version_msg("-textobjects ");
  282. #endif
  283. #ifdef VIMINFO
  284.     version_msg("+viminfo ");
  285. #else
  286.     version_msg("-viminfo ");
  287. #endif
  288. #ifdef SAVE_XTERM_SCREEN
  289.     version_msg("+xterm_save ");
  290. #else
  291.     version_msg("-xterm_save ");
  292. #endif
  293. #ifdef WRITEBACKUP
  294.     version_msg("+writebackup ");
  295. #else
  296.     version_msg("-writebackup ");
  297. #endif
  298. #ifdef UNIX
  299. # if defined(WANT_X11) && defined(HAVE_X11)
  300.     version_msg("+X11 ");
  301. # else
  302.     version_msg("-X11 ");
  303. # endif
  304. #endif
  305.     msg_putchar('\n');
  306. #ifdef USR_VIMRC_FILE
  307.     version_msg("    user vimrc file: \"");
  308.     version_msg(USR_VIMRC_FILE);
  309.     version_msg("\" ");
  310. #endif
  311. #ifdef USR_VIMRC_FILE2
  312.     version_msg("2nd user vimrc file: \"");
  313.     version_msg(USR_VIMRC_FILE2);
  314.     version_msg("\" ");
  315. #endif
  316. #ifdef USR_EXRC_FILE
  317.     version_msg("     user exrc file: \"");
  318.     version_msg(USR_EXRC_FILE);
  319.     version_msg("\" ");
  320. #endif
  321. #ifdef USR_EXRC_FILE2
  322.     version_msg("2nd user exrc file: \"");
  323.     version_msg(USR_EXRC_FILE2);
  324.     version_msg("\" ");
  325. #endif
  326. #ifdef USE_GUI
  327.     version_msg("  user gvimrc file: \"");
  328.     version_msg(USR_GVIMRC_FILE);
  329.     version_msg("\" ");
  330. # ifdef USR_GVIMRC_FILE2
  331.     version_msg("2nd user gvimrc file: \"");
  332.     version_msg(USR_GVIMRC_FILE2);
  333.     version_msg("\" ");
  334. # endif
  335. #endif
  336. #ifdef SYS_VIMRC_FILE
  337.     msg_putchar('\n');
  338.     version_msg(" system vimrc file: \"");
  339.     version_msg(SYS_VIMRC_FILE);
  340.     version_msg("\"");
  341. #endif
  342. #ifdef USE_GUI
  343. # ifdef SYS_GVIMRC_FILE
  344.     msg_putchar('\n');
  345.     version_msg("system gvimrc file: \"");
  346.     version_msg(SYS_GVIMRC_FILE);
  347.     MSG_PUTS("\"");
  348. # endif
  349. # ifdef SYS_MENU_FILE
  350.     msg_putchar('\n');
  351.     version_msg("  system menu file: \"");
  352.     version_msg(SYS_MENU_FILE);
  353.     MSG_PUTS("\"");
  354. # endif
  355. #endif
  356. #ifdef HAVE_PATHDEF
  357.     msg_putchar('\n');
  358.     version_msg("  default for $VIM: \"");
  359.     version_msg((char *)default_vim_dir);
  360.     MSG_PUTS("\"\n");
  361.     version_msg("Compilation: ");
  362.     version_msg((char *)all_cflags);
  363.     msg_putchar('\n');
  364.     version_msg("Linking: ");
  365.     version_msg((char *)all_lflags);
  366. #endif
  367. #ifdef DEBUG
  368.     msg_putchar('\n');
  369.     version_msg("  DEBUG BUILD");
  370. #endif
  371.     }
  372. }
  373.  
  374. /*
  375.  * Output a string for the version message.  If it's going to wrap, output a
  376.  * newline, unless the message is too long to fit on the screen anyway.
  377.  */
  378.     static void
  379. version_msg(s)
  380.     char    *s;
  381. {
  382.     int        len = strlen(s);
  383.  
  384.     if (len < (int)Columns && msg_col + len >= (int)Columns)
  385.     msg_putchar('\n');
  386.     MSG_PUTS(s);
  387. }
  388.